package xyz.kongbai121.modules.numcount.entity;

import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;

import lombok.Data;
import org.apache.commons.lang.StringUtils;
import xyz.kongbai121.common.utils.DistUtil;

/**
 * 微信用户
 * 
 * @author kongbai121
 * @email sunlightcs@gmail.com
 * @date 2021-11-27 18:05:28
 */
@Data
@ApiModel("微信用户实体")
@TableName("num_wechat_user")
public class WechatUserEntity implements Serializable {
	private static final long serialVersionUID = 1L;

	/**
	 * 用户id
	 */
	@ApiModelProperty("用户id")
	@TableId
	private Long id;
	/**
	 * 唯一标识
	 */
	@ApiModelProperty("唯一标识")
	private String openid;
	/**
	 * 管理员权限
	 */
	@ApiModelProperty("管理员权限")
	private Integer admin;
	/**
	 * 管理员权限字符串
	 */
	@ApiModelProperty("管理员权限字符串")
	@TableField(exist=false)
	private String adminStr;
	/**
	 * 用户状态
	 */
	@ApiModelProperty("用户状态")
	private Integer state;
	/**
	 * 用户状态字符串
	 */
	@ApiModelProperty("用户状态字符串")
	@TableField(exist=false)
	private String stateStr;
	/**
	 * 用户名
	 */
	@ApiModelProperty("用户名")
	private String nickName;
	/**
	 * 头像
	 */
	@ApiModelProperty("头像")
	private String avatarUrl;
	/**
	 * 性别
	 */
	@ApiModelProperty("性别")
	private Integer gender;
	/**
	 * 性别字符串
	 */
	@ApiModelProperty("性别字符串")
	@TableField(exist=false)
	private String genderStr;
	/**
	 * 登录地址
	 */
	@ApiModelProperty("登录地址")
	private String province;
	/**
	 * 是否已经同步资料
	 */
	@ApiModelProperty("是否已经同步资料")
	private Integer sync;
	/**
	 * 是否已经同步资料字符串
	 */
	@ApiModelProperty("是否已经同步资料字符串")
	@TableField(exist=false)
	private String syncStr;
	/**
	 * 创建个数
	 */
	@ApiModelProperty("创建个数")
	private Integer foundNum;
	/**
	 * 最大创建个数
	 */
	@ApiModelProperty("最大创建个数")
	private Integer maxFoundNum;
	/**
	 * 参加个数
	 */
	@ApiModelProperty("参加个数")
	private Integer joinNum;
	/**
	 * 最大参加个数
	 */
	@ApiModelProperty("最大参加个数")
	private Integer maxJoinNum;
	/**
	 * 删除标记
	 */
	@ApiModelProperty("删除标记")
	@TableLogic
	private String deleteTag;


	public String getAdminStr() {
		if (this.admin != null && StringUtils.isBlank(this.adminStr)){
			this.adminStr = DistUtil.transformStr("user_role", this.admin);
		}
		return adminStr;
	}

	public String getStateStr() {
		if (this.state != null && StringUtils.isBlank(this.stateStr)){
			this.stateStr = DistUtil.transformStr("status", this.state);
		}
		return stateStr;
	}

	public String getGenderStr() {
		if (this.gender != null && StringUtils.isBlank(this.genderStr)){
			this.genderStr = DistUtil.transformStr("sex", this.gender);
		}
		return genderStr;
	}

	public String getSyncStr() {
		if (this.sync != null && StringUtils.isBlank(this.syncStr)){
			this.syncStr = DistUtil.transformStr("yes_or_no", this.sync);
		}
		return syncStr;
	}
}
